home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWPxyFrm.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  6.1 KB  |  197 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWPxyFrm.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWPXYFRM_H
  11. #define FWPXYFRM_H
  12.  
  13. #ifndef FWODMISS_H
  14. #include "FWODMiss.h"
  15. #endif
  16.  
  17. #ifndef FWTCOLL_H
  18. #include "FWTColl.h"
  19. #endif
  20.  
  21. #ifndef FWODTYPS_H
  22. #include "FWODTyps.h"
  23. #endif
  24.  
  25. //========================================================================================
  26. //    Forward Declarations
  27. //========================================================================================
  28.  
  29. class ODFrame;
  30. class ODCanvas;
  31. class ODDraft;
  32. class ODStorageUnitView;
  33. class ODTransform;
  34.  
  35. class FW_CCloneInfo;
  36. class FW_MProxy;
  37. class FW_CEmbeddingFrame;
  38. class FW_CEmbeddingPart;
  39. class FW_CRect;
  40. class FW_CProxyFrame;
  41.  
  42. //========================================================================================
  43. //    class FW_CProxyFrame
  44. //========================================================================================
  45.  
  46. class FW_CProxyFrame
  47. {
  48.     friend class FW_MProxy;
  49.     
  50. //----------------------------------------------------------------------------------------
  51. //    Initialization/Destruction
  52. //
  53. protected:
  54.     FW_CProxyFrame(Environment* ev, 
  55.                 FW_MProxy* proxy, 
  56.                 FW_CEmbeddingPart* part);
  57.     FW_CProxyFrame(Environment* ev, 
  58.                 FW_MProxy* proxy, 
  59.                 FW_CEmbeddingPart* part, 
  60.                 FW_CEmbeddingFrame* containingFrame, 
  61.                 ODFrame* embeddedFrame);
  62.     ~FW_CProxyFrame();
  63.     
  64. //----------------------------------------------------------------------------------------
  65. //    New API
  66. //
  67. public:
  68.     FW_CEmbeddingFrame*    GetContainingFrame(Environment* ev) const;
  69.     ODStorageUnitID        GetContainingFrameID(Environment* ev) const;
  70.     
  71.     void                SetContainingFrame(Environment* ev, FW_CEmbeddingFrame* containingFrame);
  72.     
  73.     FW_MProxy*            GetProxy(Environment* ev) const;
  74.     void                SetProxy(Environment* ev, FW_MProxy* proxy);
  75.     
  76.     FW_Boolean            IsFrameInMemory(Environment* ev) const;
  77.  
  78.     ODFrame*            GetFrame(Environment* ev) const;
  79.     ODStorageUnitID        GetFrameID(Environment* ev) const;
  80.  
  81.     FW_Boolean            InternalizeProxyFrame(Environment* ev, ODStorageUnitView* suView, FW_CCloneInfo* cloneInfo);
  82.     FW_Boolean            ExternalizeProxyFrame(Environment* ev, ODStorageUnitView* suView, FW_CCloneInfo* cloneInfo);
  83.     
  84.     void                Release(Environment* ev);
  85.  
  86.     ODSize                Purge(Environment* ev);
  87.                 
  88.     FW_Boolean            IsOrphan(Environment* ev) const;
  89.     
  90.     FW_Boolean            IsVisible(Environment* ev, ODFacet* containingFacet, const FW_CRect& bounds) const;
  91.     FW_Boolean            IsAttached(Environment* ev) const;
  92.     
  93.     void                SetPurgeable(Environment* ev, FW_Boolean purgeable);
  94.     FW_Boolean            IsPurgeable(Environment* ev) const;
  95.             
  96.     void                RemoveAllFacets(Environment* ev);
  97.     void                RemoveFacets(Environment* ev, FW_CEmbeddingFrame* frame, ODFacet* embeddingFacet);
  98.  
  99.     void                CreateAllFacets(Environment* ev);                                
  100.     void                CreateFacets(Environment* ev, FW_CEmbeddingFrame* frame, ODFacet* embeddingFacet);                                    
  101.  
  102.  
  103.     void                SetSequenceNumber(Environment* ev);
  104.     
  105. //----------------------------------------------------------------------------------------
  106. //    Internal API
  107. //
  108. public:    
  109.     void                PrivClose(Environment* ev);
  110.  
  111.     void                PrivAttach(Environment* ev);    
  112.     void                PrivDetach(Environment* ev);    
  113.     
  114.     void                PrivSetFrameGroup(Environment* ev, ODID frameGroup);
  115.     void                PrivChangeSequenceNumber(Environment* ev, ODID sequenceNumber);
  116.     
  117. //----------------------------------------------------------------------------------------
  118. //    Data Members
  119. //
  120. private:    
  121.     FW_CEmbeddingPart*    fPart;
  122.     
  123.     ODStorageUnitID     fFrameID;    
  124.     ODDraft*            fFrameDraft;
  125.         
  126.     ODStorageUnitID        fContainingFrameID;
  127.  
  128.     FW_MProxy*            fProxy;
  129.     ODFrame*             fEmbeddedFrame;
  130.         
  131.     FW_Boolean            fPurgeable;
  132.     FW_Boolean            fAttached;                // Used by FW_MProxy::Attach/DetachEmbeddedFrames
  133. };
  134.  
  135.  
  136. //========================================================================================
  137. // Inlines
  138. //========================================================================================
  139.  
  140. //----------------------------------------------------------------------------------------
  141. //    FW_CProxyFrame::IsPurgeable
  142. //----------------------------------------------------------------------------------------
  143. inline FW_Boolean FW_CProxyFrame::IsPurgeable(Environment*) const
  144. {
  145.     return fPurgeable;
  146. }
  147.  
  148. //----------------------------------------------------------------------------------------
  149. //    FW_CProxyFrame::IsFrameInMemory
  150. //----------------------------------------------------------------------------------------
  151. inline FW_Boolean FW_CProxyFrame::IsFrameInMemory(Environment*) const
  152. {
  153.     return fEmbeddedFrame != NULL;
  154. }
  155.  
  156. //----------------------------------------------------------------------------------------
  157. //    FW_CProxyFrame::GetFrameID
  158. //----------------------------------------------------------------------------------------
  159. inline ODStorageUnitID FW_CProxyFrame::GetFrameID(Environment*) const
  160. {
  161.     return fFrameID;
  162. }
  163.  
  164. //----------------------------------------------------------------------------------------
  165. //    FW_CProxyFrame::GetProxy
  166. //----------------------------------------------------------------------------------------
  167. inline FW_MProxy* FW_CProxyFrame::GetProxy(Environment*) const
  168. {
  169.     return fProxy;
  170. }
  171.  
  172. //----------------------------------------------------------------------------------------
  173. //    FW_CProxyFrame::GetContainingFrameID
  174. //----------------------------------------------------------------------------------------
  175. inline ODStorageUnitID FW_CProxyFrame::GetContainingFrameID(Environment*) const
  176. {
  177.     return fContainingFrameID;
  178. }
  179.  
  180. //----------------------------------------------------------------------------------------
  181. //    FW_CProxyFrame::IsOrphan
  182. //----------------------------------------------------------------------------------------
  183. inline FW_Boolean FW_CProxyFrame::IsOrphan(Environment*) const
  184. {
  185.     return fContainingFrameID == kODNULLID;
  186. }
  187.  
  188. //----------------------------------------------------------------------------------------
  189. //    FW_CProxyFrame::IsAttached
  190. //----------------------------------------------------------------------------------------
  191. inline FW_Boolean FW_CProxyFrame::IsAttached(Environment*) const
  192. {
  193.     return fAttached;
  194. }
  195.  
  196. #endif
  197.